home *** CD-ROM | disk | FTP | other *** search
/ Netware Super Library / Netware Super Library.iso / mis_cnvt / par212 / int.inf < prev    next >
Text File  |  1992-10-22  |  10KB  |  308 lines

  1. ███████████████████████████████████████████████████████████████████████████████
  2. █░░░░░░░░░░░░░░░░░░░░░░░░░                         ░░░░░░░░░░░░░░░░░░░░░░░░░░░█
  3. █░░░░░░░░░░░░░░░░░░░░░░░░░      PARSE-O-MATIC      ░░░░░░░░░░░░░░░░░░░░░░░░░░░█
  4. █░░░░░░░░░░░░░░░░░░░░░░░░░                         ░░░░░░░░░░░░░░░░░░░░░░░░░░░█
  5. ███████████████████████████████████████████████████████████████████████████████
  6.  
  7.  
  8.  
  9.  
  10.                              Copyright (C) 1992
  11.  
  12.                                      by
  13.  
  14.                              Pinnacle  Software
  15.                              CP 386 Mount Royal
  16.                              Mont Royal, Quebec
  17.                                Canada H3P 3C6
  18.  
  19.  
  20.                                (514) 345-9578
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.                          Created for Pinnacle Software
  28.  
  29.                                      by
  30.  
  31.                                Timothy Campbell
  32.                                1250  Laird  #1A
  33.                                Montreal, Quebec
  34.                                 Canada H3P 2T2
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  45. INTRODUCTION
  46. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  47.  
  48.  
  49.  
  50. WHY YOU NEED PARSE-O-MATIC
  51. ──────────────────────────
  52.  
  53. There are  plenty  of programs out there that have  valuable  data locked  away
  54. inside them.  How do you get that data OUT of one program and into another one?
  55.  
  56. Some  programs  provide  a feature which  "exports"  a file into  some  kind of
  57. generic format.   Perhaps the  most popular  of  these  formats  is  known as a
  58. "comma-delimited file",  which is  a  text file  in which each  data  field  is
  59. separated by a  comma.   Literal strings -- which might  contain commas! -- are
  60. represented in double quotes.  So a few lines from a comma-delimited file might
  61. look something like this  (an export from a hypothetical database of people who
  62. owe your company money):
  63.  
  64.       ┌────────────────────────────────────────────────────────────────┐
  65.       │ "JONES","FRED","1234 GREEN AVENUE", "KANSAS CITY", "MO",293.64 │
  66.       │ "SMITH","JOHN","2343 OAK STREET","NEW YORK","NY",22.50         │
  67.       │ "WILLIAMS","JOSEPH","23 GARDEN CRESCENT","TORONTO","ON",16.99  │
  68.       └────────────────────────────────────────────────────────────────┘
  69.  
  70. Unfortunately,  not  all  programs  export  data  in  this  format, and not all
  71. programs  READ  data in that format.   What's most  annoying of all is when one
  72. program exports data in a format that is ALMOST what you need!
  73.  
  74. If  that's  the case,  you might find that it's worth your while to spend a few
  75. hours in a text editor,  modifying  the export file  so that  the other program
  76. can understand it.   Or you  might  write a program  to do the editing for you.
  77. Both solutions are time-consuming.
  78.  
  79. An even  more  challenging  problem  arises  when a program which has no export
  80. capability DOES have the ability to "print" reports to a file.  You can write a
  81. program to read these files and convert them to something you can use, but this
  82. can be a LOT of work!
  83.  
  84.  
  85.  
  86. PARSE-O-MATIC TO THE RESCUE!
  87. ────────────────────────────
  88.  
  89. Parse-O-Matic  is a  utility  that  interprets text files  and converts them to
  90. other formats.  It can help you "boil down" reports  into their essential data.
  91. You can also use it to convert NEARLY compatible file formats.
  92.  
  93. As a demonstration, I have provided you with an example parsing job which reads
  94. a report from an inventory system and produces a comma-delimited file.
  95.  
  96.  
  97.  
  98. HOW IT WORKS
  99. ────────────
  100.  
  101. You need three things:
  102.  
  103.   1)  The Parse-O-Matic program
  104.   2)  A Parse-O-Matic "POM" file (to tell Parse-O-Matic what to do)
  105.   3)  The input file
  106.  
  107. The input file is  usually  a report  from  another program.   The example I've
  108. provided (POMSAMPL.TXT) comes from the AccPac accounting software.  AccPac is a
  109. great program,  but its  export  capabilities  leave  something  to be desired.
  110. After writing  dozens  of custom programs for  a friend,  to parse  his  AccPac
  111. reports, I decided to create Parse-O-Matic for him.  Now you can use it.
  112.  
  113.  
  114.  
  115. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  116. HOW TO PROGRAM THE POM FILE
  117. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  118.  
  119.  
  120.  
  121. THE PARSE-O-MATIC COMMAND
  122. ─────────────────────────
  123.  
  124. The format of the Parse-O-Matic command line is:
  125.  
  126.   POM pom-file input-file output-file
  127.  
  128. Here's an example, as you would type it at the DOS command line:
  129.  
  130.   POM POMFILE.POM REPORT.TXT OUTPUT.TXT
  131.  
  132. For a more formal description of the command line, start up POM by typing this
  133. command at the DOS prompt:
  134.  
  135.   POM /?
  136.  
  137.  
  138.  
  139. THE POM FILE
  140. ────────────
  141.  
  142. The POM file is a text file with a .POM extension.  The following conventions
  143. are used:
  144.  
  145. ■ Null lines and lines starting with a semi-colon are ignored.
  146.  
  147. ■ A POM file may contain up to 500 lines of specifications.
  148.   Comment lines do not count in this total.
  149.  
  150. A POM file contains no "loops" (to use the programming term).  Each line of the
  151. input file interprets the entire POM file.  If you'd like it expressed in terms
  152. of programming languages, here's what POM does:
  153.  
  154.      ┌────────────────────────────────────────────────────────────────┐
  155.      │ START:  If there's nothing left in the input file, go to QUIT. │
  156.      │         Read a line from the input file                        │
  157.      │         Do everything in the POM file                          │
  158.      │         Go to START                                            │
  159.      │ QUIT:   Tell the user you're finished!                         │
  160.      └────────────────────────────────────────────────────────────────┘
  161.  
  162.  
  163.  
  164. COMMAND WORDS
  165. ─────────────
  166.  
  167. This documentation assumes that you are an experienced computer user.  If you
  168. have trouble, you might ask a programmer to help you.  If you're really stuck,
  169. give me a call and I'll help you out.
  170.  
  171. MINLEN number
  172.     Specifies the minimum length a line must be to be considered for parsing.
  173.     (Note that null lines in the input file are always ignored)
  174.  
  175. IGNORE value1 value2
  176.     When value1 contains value2, the line is ignored and all further processing
  177.     on the line stops.  The usual format of this command is something like:
  178.     IGNORE $FLINE[3 9] "Date"
  179.     This would skip any input line that contains the word "Date" between
  180.     columns 3 and 9 ($FLINE references the line just read).
  181.  
  182. IF value1 value2 var1 value3 [value4]
  183.     If value1 matches value2, var1 is set to value3.  Otherwise, it is
  184.     set to value4.  If value4 is missing, nothing is done (i.e. var1
  185.     is not changed).
  186.  
  187. OUT[END] value1 value2 |output-picture
  188.     This is two command words:  OUT and OUTEND.  OUT writes to the output
  189.     file without an end-of-line.  OUTEND writes an end-of-line to the file.
  190.     When value1 matches value2, a line is output to the output file,
  191.     according to the output picture.  Within the output picture, all
  192.     text is taken literally (i.e. " is taken to mean literally that --
  193.     a quotation mark character).  The only exception to this is that
  194.     variable names are identified by the { and } characters.  For
  195.     example, the line:  OUTEND "X" "X" |{$FLUPC}  would simply
  196.     output (in uppercase) every non-IGNOREd line in the input file.
  197.     NOTE:  OUT does not actually write to the output file; it accumulates the
  198.     output.  You must do an OUTEND to actually write the data.  The maximum
  199.     line length allowed is 255 characters.
  200.  
  201. TRIM var1 spec1 character
  202.     Removes characters from var1.  This is usually used to remove blanks.
  203.     spec1 can be:  A=All  B=Both ends  L=Left side only  R = Right side only
  204.  
  205. CHANGE var1 value1 value2
  206.     Replaces ALL occurances of value1 with value2
  207.  
  208. TRACE var1
  209.     Reports the value of var1 in the trace file (POM.TRC) if tracing has been
  210.     enabled (with the DOS command SET POM=T).
  211.  
  212.  
  213.  
  214. VALUES
  215. ──────
  216.  
  217. A value can be specified in the following ways:
  218.  
  219.   "text"              A literal text string
  220.   VARNAME             The name of a variable
  221.   VARNAME[start end]  A substring of a variable
  222.   VARNAME[start]      A single character
  223.   VARNAME+            Increments variable (see explanation below)
  224.  
  225. Variable names can be up to 8 characters long.  You can create up to 100
  226. variables and literals (this number includes the predefined variables).
  227.  
  228. Parse-O-Matic predefines several variables.  They are:
  229.  
  230.   $FLINE = The line just read from the file
  231.   $FLUPC = The line just read from the file, in uppercase
  232.   $BRL   = The { character (used in OUT)
  233.   $BRR   = The } character (used in OUT)
  234.  
  235.  
  236.  
  237. IMPORTANT NOTE ABOUT DELIMITERS
  238. ───────────────────────────────
  239.  
  240. If you have to specify a quotation mark, use "".  For example:
  241.  
  242.   IGNORE "He said ""Hello"" to me."
  243.  
  244. This would ignore lines containing:  He said "Hello" to me.
  245.  
  246.  
  247.  
  248. ILLEGAL CHARACTERS
  249. ──────────────────
  250.   
  251. No command can contain these ASCII characters:
  252.  
  253. ■ $00 (Null)
  254. ■ $0A (LF)
  255. ■ $0D (CR)
  256.  
  257. Of course, LF and CR do appear at the very end of each line.
  258.  
  259.  
  260.  
  261. INCREMENTING
  262. ────────────
  263.  
  264. Only numeric incrementing is supported at this time.  Attempting to increment
  265. another type of variable will result in an error.
  266.  
  267. ■ Incrementing "1" gives you "2"
  268. ■ Incrementing "9" gives you "10"
  269.  
  270.  
  271.  
  272. TRACING
  273. ───────
  274.  
  275. By setting the DOS variable POM to T, you can generate a trace file (POM.TRC).
  276. This is helpful if you have trouble understanding why your file isn't being
  277. parsed properly.  But be sure to test it with a SMALL input file.  The trace is
  278. quite detailed, and it can easily generate a HUGE output file.
  279.  
  280.  
  281.  
  282. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  283. SPECIFICATIONS OF THE SAMPLE PARSING JOB
  284. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  285.  
  286.  
  287.     POM FILE:  POMSAMPL.POM
  288.  
  289.   INPUT FILE:  POMSAMPL.TXT
  290.  
  291.  OUTPUT FILE:  TEST.TXT
  292.  
  293. COMMAND LINE:  POM POMSAMPL.POM POMSAMPL.TXT TEST.TXT
  294.  
  295.  
  296.  
  297. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  298. CONCLUSION
  299. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  300.  
  301.  
  302.              Thanks for taking the time to check out Parse-O-Matic.
  303.  
  304.                       I hope it saves you time and money!
  305.  
  306.  
  307.  
  308.